【 正規式實字 】
var my_regexp = /"(?:\\.|[^\\\""])*"/g;
【 建構式 】
構式接受傳入字串,並編譯成 RegExp 物件。
var my_regexp = new RegExp("\"(?:\\.|[^\\\\\\\"])*\"", 'g');
g
時為 true。i
時為 true。m
時為 true。function make_a_matcher( ) {
return /a/gi;
}
var x = make_a_matcher( );
var y = make_a_matcher( );
x.lastIndex = 10;
console.log(y.lastIndex); //10
|
字元區分。"into.match(/in|int/)"
從 into 中找出 in 就不會再找 int 了。
\
。\
都能變為實字,但\
無法讓英文變實字。.
可以比對任何字元,行末字元例外。^
可以比對字串始處,但 lastIndex 特性需為 0,若指定旗標 m 亦可以把行末字元納入比對。$
可以比對字串尾處,若指定旗標 m 亦可以把行末字元納入比對。\
在正規要素及字串中皆表示轉義,但在正規要素的運作稍微不同。\f
:與在字串相同,表示換頁字元\n
:表示換行字元。\r
:表示游標歸位(列首)字元。\t
:表 tab 字元。\u
:表示十六進位常數,來指定 unicode 字元。\b
:在正規式中,不表示為倒退字元。\d
:與[0-9]
意思相同;\D
:為前者反義,與[^0-9]
相同,比對非數字字元。\s
與 [\f\n\r\t\u000B\u0020\u00A0\2028\u2029]
同義;\S
與前者反義,與 [^\f\n\r\t\u000B\u0020\u00A0\2028\u2029]
同義。\w
與 [0-9A-Z_a-z]
意思相同,能比對所有英數字元;\W
與前者反義,與 [^0-9A-Z_a-z]
同義。(/w
應該代表組成詞彙的一組字元。)\b
設計為字詞邊界的定位點,它使用/w
尋找字詞邊界,對於多國語系無效,這不算優良部份。(?
,非記憶集結只單純做比對,不記憶符合的文段。(?=
字首,比對出集結的文段後,又再回到集結開始的地方,無法比對東西,他也不算優良部份。(?!
字首,無法比對東西才成功,他也不算優良部份。(?:a|e|i|o|u)
可以寫成[aeiou]
。[\b]
意思是倒退字元。/www/
:等同於 /w{3}/
。{3,6}
:比對三、四、五或六次。{3,}
:可比對三次以上。?
:等同於 {0,1}
。*
:等同於 {0,}
。+
:等同於 {1,}
。資料來源:《JavaScript 優良部份》 Douglas Crockford 著 歐萊禮
筆記純屬推廣及分享,如有侵權,請告知。
Please advise to remove immediately if any infringement caused.